.flex.grow > *,
.flex > .grow,
.box.grow:not(.flex) {
  flex-grow: 1 !important;
}

.flex.shrink > *,
.flex > .shrink,
.box.shrink {
  flex-shrink: 1 !important;
}

.flex.no-shrink > *,
.flex > .no-shrink,
.box.no-shrink {
  flex-shrink: 0 !important;
}

.flex.scroll,
.flex > .scroll,
.box.scroll {
  overflow: auto;
  flex-shrink: 1;
  min-width: 0;
  min-height: 0;
}

.flex {
  display: flex !important;

  &.inline {
    display: inline-flex !important;
  }

  &.row {
    flex-direction: row;
  }

  &.row-rev {
    flex-direction: row-reverse;
  }

  &.col {
    flex-direction: column;
  }

  &.col-rev {
    flex-direction: column-reverse;
  }

  &.wrap {
    flex-wrap: wrap;
  }

  &.nowrap {
    flex-wrap: nowrap;
  }

  &.alistart {
    align-items: flex-start;
  }

  &.alicenter {
    align-items: center;
  }

  &.aliend {
    align-items: flex-end;
  }

  &.alistretch {
    align-items: stretch;
  }

  &.jusstart {
    justify-content: flex-start;
  }

  &.juscenter {
    justify-content: center;
  }

  &.jusend {
    justify-content: flex-end;
  }

  &.jusstretch {
    justify-content: stretch;
  }

  &.jusbetween {
    justify-content: space-between;
  }

  &.jusaround {
    justify-content: space-around;
  }

  &.jusevenly {
    justify-content: space-evenly;
  }
}

.box {
  &.salistart {
    align-self: flex-start;
  }

  &.salicenter {
    align-self: center;
  }

  &.saliend {
    align-self: flex-end;
  }

  &.salistretch {
    align-self: stretch;
  }

  &.sjusstart {
    justify-self: flex-start;
  }

  &.sjuscenter {
    justify-self: center;
  }

  &.sjusend {
    justify-self: flex-end;
  }

  &.sjusstretch {
    justify-self: stretch;
  }
}

.px05 {
  padding-left: 4px;
  padding-right: 4px;
}

.px1 {
  padding-left: 8px;
  padding-right: 8px;
}

.px2 {
  padding-left: 16px;
  padding-right: 16px;
}

.px3 {
  padding-left: 24px;
  padding-right: 24px;
}

.py05 {
  padding-top: 4px;
  padding-bottom: 4px;
}

.py1 {
  padding-top: 8px;
  padding-bottom: 8px;
}

.py2 {
  padding-top: 16px;
  padding-bottom: 16px;
}

.py3 {
  padding-top: 24px;
  padding-bottom: 24px;
}

.mx05 {
  margin-left: 4px;
  margin-right: 4px;
}

.mxauto {
  margin-left: auto;
  margin-right: auto;
}

.mx1 {
  margin-left: 8px;
  margin-right: 8px;
}

.mx2 {
  margin-left: 16px;
  margin-right: 16px;
}

.mx3 {
  margin-left: 24px;
  margin-right: 24px;
}

.my1 {
  margin-top: 16px;
  margin-bottom: 16px;
}

.my1 {
  margin-top: 8px;
  margin-bottom: 8px;
}

.my2 {
  margin-top: 16px;
  margin-bottom: 16px;
}

.my3 {
  margin-top: 24px;
  margin-bottom: 24px;
}

.fzxs {
  font-size: 12px;
}

.fzsm {
  font-size: 14px;
}

.fzmd {
  font-size: 16px;
}

.fzlg {
  font-size: 18px;
}
